In distributed computing systems, it is beneficial to provide software applications with synchronized access to shared resources. To provide such synchronized access to shared resources, some distributed computing systems include a locking mechanism. However, conventional locking mechanisms typically lack fault tolerance. Accordingly, in such locking mechanisms, if a process that holds a lock to a resource crashes or if a lock order is lost, then the system may stall. One example of a distributed locking mechanism is a locking mechanism that implements the Lamport's Bakery Algorithm, which is described in “A New Solution of Dijkstra's Concurrent Programming Problem,” by Leslie Lamport in Communications of the ACM, August 1974, Volume 17, Number 8, pages 453-455. However, as with other conventional locking mechanisms, the bakery algorithm lacks fault tolerance.